package com.ruoyi.system.service.impl;

import java.util.List;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.system.mapper.JlMapper;
    import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.JlMapper;
import com.ruoyi.system.domain.Jl;
import com.ruoyi.system.service.IJlService;


/**
 * 简历表Service业务层处理
 *
 * @author ruoyi
 * @date 2025-04-25
 */
@Service
public class JlServiceImpl extends ServiceImpl<JlMapper, Jl> implements IJlService
{
    @Autowired
    private JlMapper jlMapper;

    /**
     * 查询简历表
     *
     * @param jlId 简历表主键
     * @return 简历表
     */
    @Override
    public Jl selectJlByJlId(Long jlId)
    {
        return jlMapper.selectJlByJlId(jlId);
    }

/**
 * 查询简历表列表
 *
 * @param jl 简历表
 * @return 简历表
 */

@Override
public List<Jl> selectJlList(Jl jl)
{
    return jlMapper.selectJlList(jl);
}

    /**
     * 新增简历表
     *
     * @param jl 简历表
     * @return 结果
     */
    @Override
    public int insertJl(Jl jl)
    {
        LambdaQueryWrapper<Jl> lambdaQueryWrapper=new LambdaQueryWrapper<>();
        lambdaQueryWrapper.select(Jl::getJlId,Jl::getDeptId);
        lambdaQueryWrapper.eq(Jl::getTel,jl.getTel());
        Jl dbjl = this.getOne(lambdaQueryWrapper);
        if(dbjl!=null && !dbjl.getDeptId().equals(jl.getDeptId())){
            throw  new RuntimeException("手机号:"+jl.getTel()+"简历库已存在,并且已被其他团队录入");
        }
        if(dbjl!=null){
            throw  new RuntimeException("手机号:"+jl.getTel()+"简历库已存在,人选管理请选择简历筛选");
        }
        jl.setCreateTime(DateUtils.getNowDate());
        return jlMapper.insertJl(jl);
    }

    /**
     * 修改简历表
     *
     * @param jl 简历表
     * @return 结果
     */
    @Override
    public int updateJl(Jl jl)
    {
        LambdaQueryWrapper<Jl> lambdaQueryWrapper=new LambdaQueryWrapper<>();
        lambdaQueryWrapper.select(Jl::getJlId,Jl::getDeptId);
        lambdaQueryWrapper.eq(Jl::getTel,jl.getTel());
        Jl dbjl = this.getOne(lambdaQueryWrapper);
        if(dbjl!=null && !dbjl.getJlId().equals(jl.getJlId())){
            throw  new RuntimeException("手机号:"+jl.getTel()+"简历库已存在");
        }
        return jlMapper.updateJl(jl);
    }

    /**
     * 批量删除简历表
     *
     * @param jlIds 需要删除的简历表主键
     * @return 结果
     */
    @Override
    public int deleteJlByJlIds(Long[] jlIds)
    {
        return jlMapper.deleteJlByJlIds(jlIds);
    }

    /**
     * 删除简历表信息
     *
     * @param jlId 简历表主键
     * @return 结果
     */
    @Override
    public int deleteJlByJlId(Long jlId)
    {
        return jlMapper.deleteJlByJlId(jlId);
    }
}
